package com.capgemini.cn.authority.core.security;

import org.pac4j.core.credentials.password.PasswordEncoder;

/**
 * <p>密码编译器接口，定义了encode函数用以对明文字符串进行加密，matches函数则用来校验明文字符串和密文字符串是否匹配</p>
 * <p>该接口需要使用者自定义实现类，以匹配不同系统的不同加密和校验逻辑</p>
 * <p style='color: yellow'>接口因暂时无用而被标识为过时，后续随时可能遗弃</p>
 * Created at 2017/8/29
 *
 * @author Andriy
 */
@Deprecated
public interface SecurityPasswordEncoder extends PasswordEncoder {

    /**
     * 加密密码，将一个明文字符串加密成密文密码并返回
     *
     * @param password 明文密码字符串
     * @return 加密后的密文密码字符串
     */
    @Override
    String encode(String password);

    /**
     * 校验明文字符串与密码字符串是否匹配
     *
     * @param plainPassword   明文字符串
     * @param encodedPassword 密文字符串
     * @return 返回true则表示密文字符串是明文字符串通过正确的加密逻辑处理的，反之则为不正确
     */
    @Override
    boolean matches(String plainPassword, String encodedPassword);
}
